public class Student {
    private String name;
    private int age;
    private int score;

    public void setName(String name) {
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setScore(int score) {
        this.score = score;
    }

    public int getScore() {
        return score;
    }
    public Student(String name,int age,int score){
        this.name = name;
        this.age = age;
        this.score = score;
    }
}
class ArrayTools{
    /**
     *
     * @param arr
     * @param comparator
     * Comparator接口通常用于定义自定义的比较逻辑，特别是在当你想要对对象进行排序，但对象本身没有实现Comparable接口时。
     * Comparator接口的compare方法通常遵循以下规则：
     *如果第一个参数应该排在第二个参数之前，则返回一个小于0的整数。
     *如果两个参数相等（即，它们的顺序不重要），则返回0。
     *如果第一个参数应该排在第二个参数之后，则返回一个大于0的整数。
     * @return
     */
    public static Student[] scrt(Student[] arr,MyComparator comparator){//冒泡排序
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length-i-1; j++) {
                if(comparator.compare(arr[j],arr[j+1])>0){
                    Student temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] =temp;
                }
            }
        }
        return arr;
    }
    public static void showMsg(Student[] arr){//打印结果
        System.out.println("姓名\t年龄\t成绩");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i].getName()+"\t"+arr[i].getAge()+"\t"+arr[i].getScore());
        }
    }
}